
/**
0：重置所有样式
1：粗体（高亮）
2：暗淡（降低亮度）
3：斜体
4：下划线
5：闪烁
7：反显（交换前景色和背景色）
8：隐藏（不可见）
9：划掉（删除线）
21：关闭粗体（粗体关闭）
22：正常颜色和粗体（关闭粗体和暗淡）
23：关闭斜体
24：关闭下划线
25：关闭闪烁
27：关闭反显
28：关闭隐藏
29：关闭删除线
30 到 37：设置前景色（文本颜色）
38：设置前景色为RGB颜色
39：重置前景色为默认颜色
40 到 47：设置背景色
48：设置背景色为RGB颜色
49：重置背景色为默认颜色
90 到 97：设置高亮前景色
100 到 107：设置高亮背景色
**/

export const ANSIParams = {
    // 2:真彩色模式(支持256^3种颜色); 5:兼容模式(灰度，仅支持256色调)
    colorMode: {
        trueColor: "2",
        compatibility: "5",
    },
    // 48：背景颜色，38：字体颜色
    colorType: {
        foreground: "38",
        background: "48"
    },
    color: {
        black: 30,
        red: 31,
        green: 32,
        yellow: 33,
        blue: 34,
        magenta: 35,
        cyan: 36,
        white: 37,
        bgBlack: 40,
        bgRed: 41,
        bgGreen: 42,
        bgYellow: 43,
        bgBlue: 44,
        bgMagenta: 45,
        bgCyan: 46,
        bgWhite: 47,
        brightBlack: 90,
        brightRed: 91,
        brightGreen: 92,
        brightYellow: 93,
        brightBlue: 94,
        brightMagenta: 95,
        brightCyan: 96,
        brightWhite: 97,
        bgBrightBlack: 100,
        bgBrightRed: 101,
        bgBrightGreen: 102,
        bgBrightYellow: 103,
        bgBrightBlue: 104,
        bgBrightMagenta: 105,
        bgBrightCyan: 106,
        bgBrightWhite: 107,
    },
    textStyle: {
        reset: 0,// 重置所有样式
        bold: 1,// 粗体
        dim: 2,// 暗淡（降低亮度）
        italic: 3,// 斜体
        underline: 4,// 下划线
        inverse: 7,// 闪烁
        hidden: 8,// 隐藏
        strikethrough: 9,// 删除线
        noBold: 21,    // 关闭粗体
        noItalic: 23,  // 关闭斜体
        noUnderline: 24,  // 关闭下划线
        noBlink: 25,   // 关闭闪烁
        noInverse: 27, // 关闭反显
        noHidden: 28,  // 关闭隐藏
        noStrikethrough: 29,  // 关闭删除线
    },
    cursor: {
        savePosition: `s`, // 保存光标位置
        restorePosition: `u`, // 恢复光标位置
        reportPosition: `6n`, // 获取光标位置
        toStart: `H`, // 将光标移动到屏幕的左上角
        toLineStart: `E`, // 将光标移动到当前行的开头
        toLineEnd: `F`, // 将光标移动到当前行的末尾
        eraseDisplay: `2J`, // 清除整个屏幕
        eraseLine: `K`, // 清除从光标位置到行尾的内容
        direct: {
            custom: `H`,// 光标移动到指定行列
            up: `A`,// 光标向上移动
            down: `B`,// 光标向下移动
            right: `C`,// 光标向右移动
            left: `D`,// 光标向左移动
        }
    },
    scroll: {
        up: "S",
        down: "T"
    }
}
